C#Dictionary异常:给定关键字不在字典中

您所在的位置:网站首页 Powerbi调用mysql报错 给定关键字不在字典中怎么办 C#Dictionary异常:给定关键字不在字典中

C#Dictionary异常:给定关键字不在字典中

2024-05-19 12:54| 来源: 网络整理| 查看: 265

兄弟,这个真的是你粗心了。问题确实是来自于dicFirstDBGroup在某次循环中找不到iCirc+1这个键。就是说你的字典的键值对并不是从Key=1到Key=iSum都齐全的,中间有漏项。漏掉的一项就是你报错时的iCirc+1这个Key,但是,它在鼠标查看即时数据时是第iCirc元素而非iCirc+1.

为什么会出现你看到的"诡异"显示呢?拿鼠标指向dicFirstDBGroup,仔细看会发现显示的是:+ dicFirstDBGroup Count=XXX展开后看到的应该是类似这样的东西:[0] {[1,urNamespace.csMyDB]}[1] {[2,urNamespace.csMyDB]}

因为字典是有序的键值对集合,这里查看到的[0][1]其实是dicFirstDBGroup的子项索引,其实它们的键分别是1和2.

再说“string strTmp=dicFirstDBGroup[49].strSQLValue”,报错说明确实没有49这个Key,你查看时可能没太留意直接看的是即时数据的[49],其实[49]的值却是dicFirstDBGroup[50]。

想测试也很简单,追踪一下,dicFirstDBGroup.Keys.Count一定小于iSum,说明字典键并非1到iSum所有数都有。

至于为什么鼠标放在dicFirstDBGroup[49].strSQLValue的strSQLValue上没有值,很简单,没键就找不到值。

使用字典时还请多加留意,要么使用ContainsKey判断有无该键,要么使用TryGetValue尝试读取值。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3